package com.tonann.app.mapper;

import com.tonann.app.VO.FaultVO;
import com.tonann.app.domain.AppFault;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Set;

/**
 * 故障记录Mapper接口
 *
 * @author tonann
 * @date 2022-10-15
 */
public interface AppFaultMapper {
    /**
     * 查询故障记录
     *
     * @param faultId 故障记录主键
     * @return 故障记录
     */
    public AppFault selectAppFaultByFaultId(Long faultId);

    /**
     * 查询故障记录列表
     *
     * @param appFault 故障记录
     * @return 故障记录集合
     */
    public List<AppFault> selectAppFaultList(AppFault appFault);

    /**
     * 新增故障记录
     *
     * @param appFault 故障记录
     * @return 结果
     */
    public int insertAppFault(AppFault appFault);

    /**
     * 修改故障记录
     *
     * @param appFault 故障记录
     * @return 结果
     */
    public int updateAppFault(AppFault appFault);

    /**
     * 删除故障记录
     *
     * @param faultId 故障记录主键
     * @return 结果
     */
    public int deleteAppFaultByFaultId(Long faultId);

    /**
     * 批量删除故障记录
     *
     * @param faultIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteAppFaultByFaultIds(Long[] faultIds);

    List<FaultVO> selectDeviceFaultNameList(Set<Long> set);

    List<AppFault> selectAppFaultByDeviceIds(@Param("set") Set<Long> set, @Param("userId") Long userId, @Param("flag") String isRead, @Param("orderLevel") String orderLevel, @Param("orderTime") String orderTime);

    List<AppFault> selectUnCheckedAppFaultListByDeviceId(Long deviceId);

    List<AppFault> selectUnCheckedAppFaultListByDeviceIds(@Param("set") Set<Long> set);
}
